08:说一下 CommonJS、AMD 和 CMD
全部标签 我有一个使用RequireJS(2.1.14)作为模块系统的前端SPA。它基本上引导并加载Backbone.Marionette应用程序。在main.js中:require.config({baseUrl:'/js',waitSeconds:200,nodeRequire:require,paths:{jquery:'//cdn/jquery.min',underscore:'//cdn/underscore-min',//moreplugins},shim:{//shimmingstuff}});require(['marionette','vent','config/templat
我需要帮助让CommonJS在Java7和Rhino1.7R3上运行。Rhino1.7R3支持CommonJS模块:https://developer.mozilla.org/En/New_in_Rhino_1.7R3Java7与Rhino1.7R3捆绑在一起。不幸的是,Java7的Rhino是修改版,它不包含org.mozilla.javascript.commonjs包:http://jdk7.java.net/rhino/README.TXT我想通过javax.scriptAPI使用Rhino1.7R3对CommonJS的支持,如下所示:ScriptEngineManagermg
最近在看别人的代码,看到了这个://Semicolon(;)toensureclosingofearlierscripting//Encapsulation//$isassignedtojQuery;(function($){//DOMReady$(function(){...});})(jQuery);我明白前导的意思;,我明白$(function(){和documentready是一样的,但是添加function($)有什么意义呢?我知道这是一个闭包,但由于它总是在全局范围内被调用,所以您似乎不需要为它操心。$(function(){将使用相同的全局对象,不是吗?这是为了防范某些事
以下是Google主页上的一些“奇怪”片段..(即google.com/ncr)({"s":{"#":[{"h":"ad","g":["Google","E4hE342CDKOgAFYm15AW","1",0,0,1]},{"h":"p","g":["ghead",",0]},{"h":"p","g":["footer","",0]},{"h":"p","g":["body","",0]},{"h":"p","g":["xjsi","然后是这个:if(google.y)google.y.first=[];if(google.y)google.y.first=[];if(!google.
在我的代码中,test.js依赖于不使用requireAMD模式的jquery-ui,而test.spec.js依赖于使用AMD模式的jquery-ui、test.js。运行test.spec.js时能否在test.js中动态加载jquery-ui的依赖。require.config({baseUrl:'/demo',paths:{'jquery':'../library/jquery-1.11.1','jquery-ui':'../library/jquery-ui-1.11.4'},shim:{'jquery':{exports:'jQuery'},'jquery-ui':{dep
虽然JavaScript及其许多库(jQuery、RequireJS)允许创建许多很棒的网站,但在考虑构建更大的网站时,我发现它缺乏类型安全性令人望而生畏。Google有一个很棒的closurecompiler这让你可以annotate你的JavaScript和JSDoc并检查它的类型。在试用了其丰富的类型系统后,我预计这将大大提高生命周期更长的JavaScript项目的可维护性。唯一的问题是它不能很好地与AMD一起玩像RequireJS这样的库。有一个实验--transform_amd_modules连接JavaScript文件并通过消除它来处理作用域的标志。然而,这似乎有点反模式,
http://jsperf.com/loops/67如果你看,下面的循环管理着一些疯狂的基准测试:vari=0;varv;for(i,v;v=arr[i++];){v;}它在FF中得分约为7亿操作/秒,在Chrome中得分约为2000万,在IE10中得分约为5000万。下一个最快的循环在FF中管理大约100k,在IE10中管理大约6k,在Chrome中管理大约2k。为什么这么快?我可以看到其他循环之间的明显差异以及一个比另一个更快,但我想不出任何可以解释这个循环绝对令人兴奋的性能差异的东西,7亿到100k是一个疯狂的差距。回答后编辑:根据@MichaelGary的回答,我返回并编辑了设
如果我有一个名为old.js的非AMD模块,并且在这个脚本中我定义了两个函数f1和f2。我需要使用它们,如何导出两者?require.config({paths:{"jquery":"https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min",},shim:{"old":{deps:["jquery"],exports:["f1","f2"]}},urlArgs:"bust="+(newDate()).getTime()});这行不通。我会得到split错误。该文档没有提到多个(http://requirejs.org/
目前我正在为一个有趣的副项目使用require.js我正在工作,除了一个名为prism.js的代码语法高亮插件外,一切正常。我可以看到插件正在通过Chrome中的网络选项卡提取,但插件未初始化。我不确定这是需求问题还是插件问题,想知道是否有人可以提供帮助。下面是我的main.js:require.config({//3rdpartyscriptaliasnamespaths:{//CoreLibrariesmodernizr:"libs/modernizr",jquery:"libs/jquery",underscore:"libs/lodash",backbone:"libs/bac
简短且看似愚蠢的问题,因为它如此简单而且您认为无处不在:有没有人获得任何类型的代码覆盖率以在RequireJS前端项目(非NodeJS)中工作?由于TDD方法在JS世界中的流行以及AMD开发的接管,这似乎是一个愚蠢的问题。我已经尝试了一百万种方法,但都缺乏。我的项目是一个带有Jasmine单元测试的Backbone项目:1)带有Coverage插件的JSTD。JSTD无法正确加载和检测AMD模块。如果我在单个js文件上运行JSTD(由RequireJS优化器组合),那么代码覆盖率会很好地工作,除了然后收集覆盖率并在整个文件上定义指标。太好了,这没用,因为它包含第3方库,而且因为我无法针